package top.ruanlitao.shortlink.project.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import top.ruanlitao.shortlink.project.dto.biz.ShortLinkStatsRecordDTO;
import top.ruanlitao.shortlink.project.dto.req.ShortLinkStatsAccessRecordReqDTO;
import top.ruanlitao.shortlink.project.dto.req.ShortLinkStatsReqDTO;
import top.ruanlitao.shortlink.project.dto.resp.ShortLinkStatsAccessRecordRespDTO;
import top.ruanlitao.shortlink.project.dto.resp.ShortLinkStatsRespDTO;

/**
 * 短链接监控接口层
 * 公众号：马丁玩编程，回复：加群，添加马哥微信（备注：link）获取项目资料
 */
public interface ShortLinkStatsService {

    /**
     * 查询一条短链接的监控信息
     *
     * @param requestParam 监控信息请求参数
     * @return 监控信息响应参数
     */
    ShortLinkStatsRespDTO oneShortLinkStats(ShortLinkStatsReqDTO requestParam);

    /**
     * 访问单个短链接指定时间内访问记录监控数据
     *
     * @param requestParam 获取短链接监控访问记录数据入参
     * @return 访问记录监控数据
     */
    IPage<ShortLinkStatsAccessRecordRespDTO> shortLinkStatsAccessRecord(ShortLinkStatsAccessRecordReqDTO requestParam);

    /**
     * 将短链接访问记录保存到数据库中
     * @param shortLinkStatsRecord 短链接访问记录
     */
    void actualSaveShortLinkStats(ShortLinkStatsRecordDTO shortLinkStatsRecord);
}